package com.personal.test.socket;

import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;

/**
 * @author linyh
 * @version 1.0
 * @email 1503386669@qq.com
 * @date 2020/10/30 14:20
 */

/**
 * 一对一服务端: 一个服务端对应一个客户端。
 */
public class SocketServer {
    public static void main(String[] args) throws IOException {
        // 端口号
        int port = 7000;
        // 在端口上创建一个服务器套接字
        ServerSocket serverSocket = new ServerSocket(port);
        // 监听来自客户端的连接
        Socket socket = serverSocket.accept();
        // 读取客户端传过来的数据（该对象负责接收客户端发过来的数据）
        DataInputStream dis = new DataInputStream(
                new BufferedInputStream(socket.getInputStream()));
        // 该对象用于服务端向客户端回写数据
        DataOutputStream dos = new DataOutputStream(
                new BufferedOutputStream(socket.getOutputStream()));
        do {
            double length = dis.readDouble();
            System.out.println("服务器端收到的边长数据为：" + length);
            double result = length * length;
            dos.writeDouble(result);
            dos.flush();
        } while (dis.readInt() != 0); // 判断客户端是否断开连接
        socket.close();
        serverSocket.close();
    }
}
